package com.typing.utils;

import java.util.HashMap;

public class Result<T> extends HashMap<String, Object> {

	//  响应码
	private int code;

	//	响应信息
	private String msg;

	//	响应数据
	private Object data;

	/**
	 * 响应成功
	 *
	 * @param msg 应成功的提示信息
	 * @return 返回响应成功提示信息
	 */
	public Result ok(String msg) {
		Result map = new Result();
		map.put("code", ResultConst.SUCCESS_CODE);
		map.put("msg", msg);
		map.put("data", data);
		return map;
	}


	public Result ok() {
		Result map = new Result();
		map.put("code", ResultConst.SUCCESS_CODE);
		map.put("msg", msg);
		map.put("data", data);
		return map;
	}


	/**
	 * 响应成功
	 *
	 * @param data 响应的数据
	 * @return 返回响应数据
	 */
	public Result ok(Object data, String msg) {
		Result map = new Result();
		map.put("code", ResultConst.SUCCESS_CODE);
		map.put("msg", msg);
		map.put("data", data);
		return map;
	}

	public Result ok(Object data) {
		Result map = new Result();
		map.put("code", ResultConst.SUCCESS_CODE);
		map.put("msg", msg);
		map.put("data", data);
		return map;
	}

	/**
	 * 响应失败
	 *
	 * @param msg 响应失败的提示信息
	 * @return 返回响应失败提示信息
	 */
	public Result error(int code, String msg) {
		Result map = new Result();
		map.put("code", code);
		map.put("msg", msg);
		map.put("data", data);
		return map;
	}


	public Result upFileError(){
		return error(ResultConst.ERROR_CODE,"图片上传失败");
	}

	public Result accountError(){
		return error(ResultConst.ACCOUNT_ERROR,"请重新登录");
	}

	public Result passwordError() {
		return error(ResultConst.PASSWORD_ERROR, "密码错误");
	}

	public Result mobilePhoneError() {
		return error(ResultConst.FORMAT_ERROR, "请输入正确的手机号码");
	}

	public Result notRegisteredError() {
		return error(ResultConst.NOT_REGISTER_ERROR, "手机号未注册");
	}

	public Result pwFormatError() {
		return error(ResultConst.FORMAT_ERROR, "密码格式错误");
	}

	public Result systemError() {
		return error(ResultConst.SYSTEM_ERROR, "未知异常");
	}


	//	注册
//	学院
	public Result collegeError() {
		return error(ResultConst.FORMAT_ERROR, "请输入学院名称");
	}

	//	用户名
	public Result userNameError() {
		return error(ResultConst.FORMAT_ERROR, "请输入您的姓名");
	}

	//  专业
	public Result majorError() {
		return error(ResultConst.FORMAT_ERROR, "请输入专业名称");
	}

	//	班级
	public Result classesError() {
		return error(ResultConst.FORMAT_ERROR, "请输入班级名称");
	}

	//	已注册
	public Result phoneIsRegistered() {
		return error(ResultConst.REGISTERED_ERROR, "该手机号已被注册");
	}

	//	选择身份
	public Result roleFormatError() {
		return error(ResultConst.FORMAT_ERROR, "请选择身份（学生/教师）");
	}


	//	管理员账号未注册
	public Result adminNotRegistered() {
		return error(ResultConst.NOT_REGISTER_ERROR, "管理员账号未注册");
	}

	//	管理员账号已被注册
	public Result adminIsRegistered() {
		return error(ResultConst.REGISTERED_ERROR, "该管理员账号已被注册");
	}

	//	管理员账号格式错误
	public Result adminFormatError() {
		return error(ResultConst.FORMAT_ERROR, "请输入正确的管理员账号");
	}


	//	单词
	public Result wordFormatError() {
		return error(ResultConst.FORMAT_ERROR, "请输入正确的单词");
	}

	//	已有该单词
	public Result wordIsRegistered() {
		return error(ResultConst.REGISTERED_ERROR, "已有该单词");
	}

	//	未有该单词
	public Result wordNotRegister() {
		return error(ResultConst.NOT_REGISTER_ERROR, "没有找到该单词");
	}

	//	首字母格式错误
	public Result firstWordFormatError() {
		return error(ResultConst.FORMAT_ERROR, "请输入正确的首字母");
	}

	//	中文格式错误
	public Result chineseFormatError() {
		return error(ResultConst.FORMAT_ERROR, "请输入正确的中文");
	}


	//	没有登录
	public Result notLoginError() {
		return error(ResultConst.NOT_LOGIN_ERROR, "请先登录");
	}

}
